public class MathDemo {
    protected static void demoLogic() {
        DateTimeDemo.logTs("MathDemo");
        // 加减乘除
        double x=Math.PI;
        double y=Math.E;
        System.out.println("PI + 自然常数E="+(x+y));
        System.out.println("PI - 自然常数E="+(x-y));
        System.out.println("PI * 自然常数E="+(x*y));
        System.out.println("PI / 自然常数E="+(x/y));

        // 平方开方
        System.out.println("PI 平方="+(x*x));
        System.out.println("PI 平方根="+ Math.sqrt(x));

        // 向下取整，向上取整，4舍5入，强转为int(效果为向下取整)
        System.out.println("PI 向上取整="+ Math.ceil(x));
        System.out.println("PI 向下取整="+ Math.floor(x));
        System.out.println("PI 4舍5入="+ Math.round(x));
        System.out.println("PI 强转为int(效果为向下取整)="+ (int)(x));
        System.out.println("自然常数E 强转为int(效果为向下取整)="+ (int)(y));

        // 三角函数 反三角函数
        double r2a = 57.29577951308232; // 弧度转角度 比例参数
        double a2r = 0.017453292519943295; // 角度转弧度 比例参数
        System.out.println("自然常数E作为角度(弧度), 转为360角度 = " + y * r2a);
        System.out.println("自然常数E作为角度(弧度), 正弦 = " + Math.sin(y));
        System.out.println("自然常数E作为角度(弧度), 余弦 = " + Math.cos(y));
        System.out.println("自然常数E作为角度(弧度), 正切 = " + Math.tan(y));
        System.out.println("自然常数E作为角度(弧度), 余切(正切倒数) = " + 1.0 / Math.tan(y));
        System.out.println("自然常数E作为角度(弧度), 正割(余弦倒数) = " + 1.0 / Math.cos(y));
        System.out.println("自然常数E作为角度(弧度), 余割(正弦倒数) = " + 1.0 / Math.sin(y));
        double s5 = 1.0 / Math.sqrt(5);
        System.out.println("根号5分之1 反正弦(定义域 [-1,1], 值域[-pi/2,pi/2])= " + Math.asin(s5));
        System.out.println("根号5分之2 反余弦(定义域 [-1,1], 值域[0,pi])= " + Math.acos(2 * s5));
        System.out.println("0.5 反正切(值域[0,pi])= " + Math.atan(0.5));

        // 指数函数 对数函数
        System.out.println("E 的 3次方="+ Math.pow(y, 3)+", 用exp函数 = "+Math.exp(3));
        System.out.println("E 的 PI次方="+ Math.pow(y, x)+", 用exp函数 = "+Math.exp(x));
        System.out.println("E 的 4次方="+ Math.pow(y, 4)+", 用exp函数 = "+Math.exp(4));
        System.out.println("E为底, E的PI次方的对数(如果没有精度损失应该等于PI) = "+ Math.log(Math.exp(x)));
        System.out.println("10为底, E的PI次方的对数 = "+ Math.log10(Math.exp(x)));
        System.out.println("2为底, E的PI次方的对数 = "+ Math.log(Math.exp(x)) / Math.log(2.0)); // log2N=logeN/loge2,logeN代表以e为底的N的对数,loge2代表以e为底的2的对数

        // 向量 矩阵
        // 虚数
        // 大数（超过64位）
    }
}
